

#include "GnMemoryObject.h"

template <class T> class GnTMallocInterface
{
public:
	static T* Allocate(gtuint uiNumElements)
	{return GnAlloc(T, uiNumElements);};
	static void Deallocate(T* pArray)
	{GnFree(pArray);};
};

template <class T>
class GnTNewInterface
{
public:
	static T* Allocate(gtuint uiNumElements)
	{return GnNew T[uiNumElements];};
	static void Deallocate(T* pArray)
	{GnDelete [] pArray;};
};

template <class T>
class GnTExternalNewInterface
{
public:
	static T* Allocate(gtuint uiNumElements)
	{return GnExternalNew T[uiNumElements];};
	static void Deallocate(T* pArray)
	{GnExternalDelete [] pArray;};
};